#include<bits/stdc++.h>
using namespace std;

typedef char ElementType;
typedef struct TNode *Position;
typedef Position BinTree;
struct TNode{
    ElementType Data;
    BinTree Left;
    BinTree Right;
};

BinTree CreatBinTree(); /* 实现细节忽略 */
void InorderTraversal( BinTree BT );//中旬遍历
void PreorderTraversal( BinTree BT );//前序遍历
void PostorderTraversal( BinTree BT );//后序遍历
void LevelorderTraversal( BinTree BT );//层次遍历

int main()
{
    BinTree BT = CreatBinTree();
    printf("Inorder:");    InorderTraversal(BT);    printf("\n");
    printf("Preorder:");   PreorderTraversal(BT);   printf("\n");
    printf("Postorder:");  PostorderTraversal(BT);  printf("\n");
    printf("Levelorder:"); LevelorderTraversal(BT); printf("\n");
    return 0;
}
/* 你的代码将被嵌在这里 */
void LevelorderTraversal(BinTree BT){
    queue<TNode*> s;
    if(!BT){
        return;//二叉树是空的，就直接返回
    }
    s.push(BT);
    while(!s.empty()){
        TNode *p = s.front();//先进先出，使用队列
        cout<<p->Data;
        if(p->Left){
            s.push(p->Left);
        }
        if(p->Right){
            s.push(p->Right);
        }
        s.pop();
    }
}